package com.ruoyi.merchant.service.impl;

import java.util.Collections;
import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.merchant.domain.dto.ImsYzzcSunGoodsDto;
import com.ruoyi.merchant.domain.vo.ImsYzzcSunGoodsVo;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.merchant.mapper.ImsYzzcSunGoodsMapper;
import com.ruoyi.merchant.domain.ImsYzzcSunGoods;
import com.ruoyi.merchant.service.IImsYzzcSunGoodsService;

/**
 * 车辆Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-08-28
 */
@Service
public class ImsYzzcSunGoodsServiceImpl implements IImsYzzcSunGoodsService 
{
    @Autowired
    private ImsYzzcSunGoodsMapper imsYzzcSunGoodsMapper;

    /**
     * 查询车辆
     * 
     * @param id 车辆主键
     * @return 车辆
     */
    @Override
    public ImsYzzcSunGoods selectImsYzzcSunGoodsById(Long id)
    {
        return imsYzzcSunGoodsMapper.selectImsYzzcSunGoodsById(id);
    }

    @Override
    public ImsYzzcSunGoodsVo selectGoodsById(Long id){
        return imsYzzcSunGoodsMapper.selectGoodsById(id);
    }

    /**
     * 查询车辆列表
     * 
     * @param imsYzzcSunGoods 车辆
     * @return 车辆
     */
    @Override
    @DataScope(deptAlias = "d",userAlias = "u")
    public List<ImsYzzcSunGoods> selectImsYzzcSunGoodsList(ImsYzzcSunGoods imsYzzcSunGoods)
    {
        return imsYzzcSunGoodsMapper.selectImsYzzcSunGoodsList(imsYzzcSunGoods);
    }

    @Override
    @DataScope(deptAlias = "d",userAlias = "u")
    public List<ImsYzzcSunGoods> selectImsYzzcSunGoodsNotImeiList(ImsYzzcSunGoods imsYzzcSunGoods) {
        return imsYzzcSunGoodsMapper.selectImsYzzcSunGoodsNotImeiList(imsYzzcSunGoods);
    }

    /**
     * 新增车辆
     * 
     * @param imsYzzcSunGoods 车辆
     * @return 结果
     */
    @Override
    public int insertImsYzzcSunGoods(ImsYzzcSunGoods imsYzzcSunGoods)
    {
        return imsYzzcSunGoodsMapper.insertImsYzzcSunGoods(imsYzzcSunGoods);
    }

    /**
     * 修改车辆
     * 
     * @param imsYzzcSunGoods 车辆
     * @return 结果
     */
    @Override
    public int updateImsYzzcSunGoods(ImsYzzcSunGoods imsYzzcSunGoods)
    {
        return imsYzzcSunGoodsMapper.updateImsYzzcSunGoods(imsYzzcSunGoods);
    }

    /**
     * 批量删除车辆
     * 
     * @param ids 需要删除的车辆主键
     * @return 结果
     */
    @Override
    public int deleteImsYzzcSunGoodsByIds(Long[] ids)
    {
        return imsYzzcSunGoodsMapper.deleteImsYzzcSunGoodsByIds(ids);
    }

    /**
     * 删除车辆信息
     * 
     * @param id 车辆主键
     * @return 结果
     */
    @Override
    public int deleteImsYzzcSunGoodsById(Long id)
    {
        return imsYzzcSunGoodsMapper.deleteImsYzzcSunGoodsById(id);
    }

    @Override
    @DataScope
    public List<ImsYzzcSunGoods> filterImeiGoods(String notImei, String imei) {
        return imsYzzcSunGoodsMapper.filterImeiGoods(notImei, imei);
    }

    /**
     * 根据排班查询车辆
     *
     * @param imsYzzcSunGoods 车辆
     * @return 车辆
     */
    @Override
    public List<ImsYzzcSunGoodsVo> selectCarsBySchedule(ImsYzzcSunGoodsDto imsYzzcSunGoods)
    {
        return imsYzzcSunGoodsMapper.selectCarsBySchedule(imsYzzcSunGoods);
    }

    /**
     * 校验车牌是否唯一
     *
     * @return 结果
     */
    @Override
    public boolean checkUnique(ImsYzzcSunGoods goods)
    {
        Long id = StringUtils.isNull(goods.getId()) ? -1L : goods.getId();
        ImsYzzcSunGoods info = imsYzzcSunGoodsMapper.checkUnique(goods.getCarnum());
        if (StringUtils.isNotNull(info) && info.getId().longValue() != id.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }
}
